
package com.hlkj.pay.infrastructure.model.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.baomidou.mybatisplus.annotation.TableName;
import com.hlkj.framework.mybatis.core.dataobject.BaseDO;
import com.hlkj.pay.enums.PayOrderEnums;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * @author HlpayTeam
 * @date 2024/10/10 13:22
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_order_fund")
public class OrderFundDO extends BaseDO {

    /**
     * 平台订单号
     */
    @Schema(description = "平台订单号")
    private String payOrderNo;

    /**
     * 商户商户号
     */
    @Schema(description = "商户商户号")
    private String sn;

    /**
     * 分账批次号
     */
    @Schema(description = "分账批次号")
    private String batchNo;

    /**
     */
    @Schema(description = "分账类型 ，0或空=无分账，1=实时分账，2=延时分账，3=商户 预设默认分账")
    private Integer fundProcessType;
    /**
     * @see PayOrderEnums.SYSTEM_PROCESS_TYPE
     */
    @Schema(description = "系统处理类型 ，0 渠道自动处理 1 系统处理 2 商户自行请求")
    private Integer systemProcessType;

    @Schema(description = "商户分账单号")
    private String mchAcctOrderNo;

    @Schema(description = "商户分账退款单号")
    private String mchAcctRefundOrderNo;

    @Schema(description = "分账类型 0 支付 1 退款")
    private Integer fundType;

    @Schema(description = "通知地址")
    private String notifyUrl;

    @Schema(description = "appId")
    private String appId;

    @Schema(description = "signType")
    private String signType;

    @Schema(description = "是否重新分账")
    private Integer accRetry;

    /**
     * 分账状态
     * 
     * @see PayOrderEnums.PAY_ORDER_FUND_STATUS
     */
    @Schema(description = "分账状态，1=初始化，2=待分账，3=分账中，4=已分账，5=分账失败，6=已完结")
    private Integer fundStatus;
}
